Định nghĩa Cây tìm kiếm nhị phân

Cây tìm kiếm nhị phân

Cây tìm kiếm ứng với n khóa k 1 , k 2 , . . . k n {\displaystyle k_{1},k_{2},...k_{n}} là cây nhị phân mà mỗi nút đều được gán một khóa sao cho với mỗi mỗi nút k:

  • Mọi khóa trên cây con trái đều nhỏ hơn khóa trên nút k
  • Mọi khóa trên cây con phải đều lớn hơn khóa trên nút k

Cây tìm kiếm nhị phân là một cấu trúc dữ liệu cơ bản được sử dụng để xây dựng các cấu trúc dữ liệu trừu tượng hơn như các tập hợp, đa tập hợp, các dãy kết hợp.

Nếu một BST có chứa các giá trị giống nhau thì nó biểu diễn một đa tập hợp. Cây loại này sử dụng các bất đẳng thức không nghiêm ngặt. Mọi nút trong cây con trái có khóa nhỏ hơn khóa của nút cha, mọi nút trên cây con phải có nút lớn hơn hoặc bằng khóa của nút cha.

Nếu một BST không chứa các giá trị giống nhau thì nó biểu diễn một tập hợp đơn trị như trong lý thuyết tập hợp. Cây loại này sử dụng các bất đẳng thức nghiêm ngặt. Mọi nút trong cây con trái có khóa nhỏ hơn khóa của nút cha, mọi nút trên cây con phải có khóa lớn hơn khóa của nút cha.

Việc chọn đưa các giá trị bằng nhau vào cây con phải (hay trái) là tùy theo mỗi người. Một số người cũng đưa các giá trị bằng nhau vào cả hai phía, nhưng khi đó việc tìm kiếm trở nên phức tạp hơn.

Tài liệu tham khảo

WikiPedia: Cây tìm kiếm nhị phân http://cg.scs.carleton.ca/~dana/pbst http://www.24bytes.com/Binary-Search-Tree.html http://aspn.activestate.com/ASPN/Cookbook/Python/R... http://www.goletas.com/solutions/collections/ http://cslibrary.stanford.edu/110/ http://nova.umuc.edu/~jarc/idsv/lesson1.html http://webpages.ull.es/users/jriera/Docencia/AVL/A... http://www.nist.gov/dads/HTML/binarySearchTree.htm... http://www.algolist.net/Data_structures/Binary_sea... http://jdserver.homelinux.org/wiki/Binary_Search_T...